import md5 from 'blueimp-md5'

// 生成签名
function createSign(data, appkey) {
    // 获取属性名并排序
    const keys = Object.keys(data).sort()
    const params = []
    for (let key of keys) {
        const value = data[key]
        if (value === null || value === undefined) {
            continue; // 忽略 null 和 undefined 属性
        } else if (typeof value === "object") {
            params.push(`${key}=${JSON.stringify(value)}`) // 对象或数组需要转换为字符串
        } else {
            params.push(`${key}=${value}`)
        }
    }

    let str = params.join("&") + appkey
    let sign = md5(str.toLocaleLowerCase())

    return {
        str: str.toLocaleLowerCase(),
        sign: sign
    }
}

export default {
    createSign
}
